package com.sicheng.蓝桥.省赛.第九届;

import java.io.BufferedInputStream;
import java.util.*;

/**
 * @author zsc
 * @version 1.0
 * @date 2022/1/22 16:03
 */
public class 日志输出 {
    /**
     * https://wmathor.com/index.php/archives/1297/
     * 小明维护着一个程序员论坛。现在他收集了一份 "点赞" 日志，日志共有 N 行。其中每一行的格式是：
     * <p>
     * ts id
     * <p>
     * 表示在 ts 时刻编号 id 的帖子收到一个 "赞"。
     * <p>
     * 现在小明想统计有哪些帖子曾经是 "热帖"。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞，小明就认为这个帖子曾是 "热帖"。
     * <p>
     * 具体来说，如果存在某个时刻 T 满足该帖在 [T, T+D) 这段时间内 (注意是左闭右开区间) 收到不少于 K 个赞，该帖就曾是 "热帖"。
     * <p>
     * 给定日志，请你帮助小明统计出所有曾是 "热帖" 的帖子编号。
     * <p>
     * 【输入格式】
     * 第一行包含三个整数 N、D 和 K。
     * 以下 N 行每行一条日志，包含两个整数 ts 和 id。
     * <p>
     * 对于 50% 的数据，1 <= K <= N <= 1000
     * 对于 100% 的数据，1 <= K <= N <= 100000 0 <= ts <= 100000 0 <= id <= 100000
     * <p>
     * 【输出格式】
     * 按从小到大的顺序输出热帖 id。每个 id 一行。
     * <p>
     * 【输入样例】
     * 7 10 2
     * 0 1
     * 0 10
     * 10 10
     * 10 1
     * 9 1
     * 100 3
     * 100 3
     * <p>
     * 【输出样例】
     * 1
     * 3
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(new BufferedInputStream(System.in));
        int n = scanner.nextInt();
        int d = scanner.nextInt();
        int k = scanner.nextInt();

//        (id,List(ts))
        HashMap<Integer, List<Integer>> hashMap = new HashMap<>();

        for (int i = 0; i < n; i++) {
            int time = scanner.nextInt();
            int id = scanner.nextInt();
            List<Integer> times;
            if (hashMap.containsKey(id)) {
                times = hashMap.get(id);
            } else {
                times = new ArrayList<>();
            }
            times.add(time);
            hashMap.put(id, times);
        }
        List<Integer> res = new ArrayList<>();
        for (Integer id : hashMap.keySet()) {
            List<Integer> times = hashMap.get(id);
            if (times.size() >= k) {
                Collections.sort(times);
                for (int i = 0, j = k - 1; j < times.size(); j++, i++) {
                    if (times.get(j) - times.get(i) < d) {
                        res.add(id);
                        break;
                    }
                }
            }


        }

        Collections.sort(res);
        res.forEach(System.out::println);

    }
}
